package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.entity.SysUser;
import java.util.List;

/**
 * 用户关注Service接口
 *
 * @author ruoyi
 * @date 2024-07-28
 */
public interface IUserFollowService
{
    /**
     * 切换关注状态
     *
     * @param userId 关注者ID
     * @param followedUserId 被关注者ID
     * @return true表示关注成功, false表示取消关注
     */
    boolean toggleFollow(Long userId, Long followedUserId);

    /**
     * 检查是否已关注
     *
     * @param userId 关注者ID
     * @param followedUserId 被关注者ID
     * @return true表示已关注, false表示未关注
     */
    boolean checkUserFollowed(Long userId, Long followedUserId);

    /**
     * 查询关注数
     */
    int countFollow(Long userId);

    /**
     * 查询粉丝数
     */
    int countFans(Long userId);

    /**
     * 查询我关注的用户列表
     */
    List<SysUser> selectFollowsByUserId(Long userId);

    /**
     * 查询我的粉丝用户列表
     */
    List<SysUser> selectFansByUserId(Long userId);
} 